/**
 * 
 */
package ar.edu.utn.frgp.EjemploHibernate.service.impl;

import java.util.List;

import ar.edu.utn.frgp.EjemploHibernate.dao.ClienteDao;
import ar.edu.utn.frgp.EjemploHibernate.dao.CuentaDao;
import ar.edu.utn.frgp.EjemploHibernate.dao.TransferenciaDao;
import ar.edu.utn.frgp.EjemploHibernate.model.Cliente;
import ar.edu.utn.frgp.EjemploHibernate.model.Cuenta;
import ar.edu.utn.frgp.EjemploHibernate.model.Transferencia;
import ar.edu.utn.frgp.EjemploHibernate.service.RecursoService;

/**
 * @author
 * 
 *         31/08/2012 12:56:25
 */
public class RecursoServiceImpl implements RecursoService {

	private ClienteDao clienteDao;
	private CuentaDao cuentaDao;
	private TransferenciaDao transferenciaDao;

	// CLIENTES
	public ClienteDao getClienteDao() {
		return clienteDao;
	}

	public void setClienteDao(ClienteDao clienteDao) {
		this.clienteDao = clienteDao;
	}

	public List<Cliente> getClientes() {
		return clienteDao.getAll();
	}

	public Cliente getCliente(String dni) {
		return clienteDao.buscarCliente(dni);
	}

	public Cliente getCliente(String dni, String password) {
		return clienteDao.buscarCliente(dni, password);
	}

	public void crearCliente(Cliente cliente) {
		clienteDao.create(cliente);
	}

	public void modificarCliente(Cliente cliente) {
		clienteDao.update(cliente);
	}

	// CUENTAS
	public List<Cuenta> getCuentas() {
		return cuentaDao.getAll();
	}

	public void crearCuenta(Cuenta cuenta) {
		cuentaDao.create(cuenta);
	}

	public CuentaDao getCuentaDao() {
		return cuentaDao;
	}

	public void setCuentaDao(CuentaDao cuentaDao) {
		this.cuentaDao = cuentaDao;
	}

	public Cuenta getCuenta(String dni) {
		return cuentaDao.buscarCuenta(dni);
	}

	public List<Cuenta> getCuentasxDni(String dni) {
		List<Cuenta> cuentas = cuentaDao.getCuentasxDni(dni);
		return cuentas;
	}

	public int getCantidadCuentaCorriente(String dni) {
		return cuentaDao.getCantidadCuentaCorriente(dni);
	}

	public int getCantidadCajaAhorro(String dni) {
		return cuentaDao.getCantidadCajaAhorro(dni);
	}

	public int getMaxidCuenta() {
		return cuentaDao.getMaxidCuenta();
	}

	public void eliminarCuenta(int idCuenta) {
		cuentaDao.eliminarCuenta(idCuenta);
	}

	public Cuenta getCuenta(int idCuenta) {
		return cuentaDao.getCuenta(idCuenta);
	}

	public void actualizarCuenta(Cuenta cuenta) {
		cuentaDao.update(cuenta);
	}

	// TRANSFERENCIAS
	public TransferenciaDao getTransferenciaDao() {
		return transferenciaDao;
	}

	public void setTransferenciaDao(TransferenciaDao transferenciaDao) {
		this.transferenciaDao = transferenciaDao;
	}

	public List<Transferencia> getTransferenciasXCuenta(int idCuenta,
			String tipoTransaccion) {
		return transferenciaDao.getTransferenciasXCuenta(idCuenta,
				tipoTransaccion);
	}

	public int getMaxidTransferencia() {
		return transferenciaDao.getMaxidTransferencia();
	}

	public void crearTransferencia(Transferencia transferencia) {
		transferenciaDao.create(transferencia);
	}

}
